As may be appreciated, a content management server (CMS) is employed by an enterprise or organization to build, deploy, and maintain a content-rich web site such as that which may be accessible by way of the Internet or another network. Such a CMS streamlines the web publishing process, thereby reducing costly site maintenance and empowering the enterprise or organization to manage its own content. An example of such a CMS is provided by the MICROSOFT Content Management Server application, as developed and marketed by MICROSOFT Corporation of Redmond, Wash., USA.
Thus, a CMS is employed to deploy an Internet, intranet, or extranet web site, and provides tools necessary to build and deploy the core infrastructure of a web site, including site structure, presentation templates, site design, application integration, and security. In addition, once a site has been deployed, managers and content authors can use CMS tools to create, publish, and manage their own content.
Typically, a CMS provides content managers, authors, and the like with tools that enable such personnel to create and publish rich, personalized content directly to a web site. A role-based distributed publishing model is typically employed, where such model incorporates an approval workflow with multiple levels, automatic content scheduling and archiving, and content indexing. Developers can create centrally-managed page templates and publishing processes that ensure consistency across the site, thus ensuring adherence to organizational publishing standards and branding without diminishing the flexibility of the publishing environment.
In a CMS, a template may be employed as the framework to control the way that a page of data is to be presented and manipulated. Typically, the template may include items such as content and/or one or more placeholders where content is to be placed, as well as positioning information on a layout for each item. Each placeholder typically includes some content definition information, including, for example, a name and a type of content to be placed in the placeholder, such as a picture, text, etc. Note that in some instances the template includes only the positioning information while a separate template gallery construct includes the content information and other information.
In such CMS or the like, a page of information or the like that can be served is typically represented by a posting that is locatable by way of a URL or other resource locator, where the posting typically points to and is therefore bound to a particular template. Put another away, the posting is ‘viewed’ according to the bound-to template. Typically, the posting points to content, whereby the served page of information includes at least a portion of the pointed-to content set forth according to the pointed-to template.
As may be appreciated, for each placeholder in the template as named according to the content definition thereof, the posting should refer to a correspondingly named piece of content. Thus, the ‘title’ placeholder is to be populated with ‘title’ content as specified within the posting and the ‘title’ content is of a type specified for the ‘title’ placeholder, the ‘description’ placeholder is to be populated with ‘description’ content as specified within the posting and the ‘description’ content is of a type specified for the ‘description’ placeholder, etc.
A need exists, however, for a method and mechanism that extends the aforementioned template-posting framework so that the content of the posting can be viewed according to multiple templates. That said, care must be taken to ensure that each of the multiple templates uses a common naming and typing scheme for naming and typing placeholders therein. That is, if a posting contains ‘summary’ content that is text and that is to appear in each view, then the template corresponding to each view must have a ‘summary’ placeholder of type text. If one of the templates instead has a ‘sum’ placeholder, for example, such template cannot handle the ‘summary’ content because of the name mismatch. Likewise, if one of the templates instead has a ‘summary’ placeholder of type picture, for example, such template cannot handle the ‘summary’ content because of the type mismatch.
More particularly, then, a need exists for a method and mechanism that connects templates based on a shared content definition for the placeholders of the templates. Accordingly, the same content as represented by the shared content definition can be viewed according to multiple connected templates that share such content definition. As a result, templates for displaying content become strongly typed but allow for considerable flexibility in formatting, filtering, and manipulating instances of content of the given type. Put another way, the same content can be re-purposed or represented in different ways.